import {
    toast,
    promptBox
} from 'nc-lightapp-front';
import {base} from 'nc-lightapp-front';

import deepCopy from '../../../../hrpub/common/utils/deep-copy';

const {NCCheckbox} = base;
let currentINfosetArray = [];
let gridMap = {};
let gridlength = 0;
let approveMap = {};
let approveR = {};
let label = [];
let pkhipsndoc = {};
let disEditMap = {};
let flag = 0;
//const 把attrcode字符串保存成一个常量，以后如果模板要改的话也方便修改。 

export default class TableAction {
    constructor(comp) {
        this.comp = comp;
    }

    // 获取表格数据
    getMainTableData = ({
                            pk_org
                        } = {}) => {
        const {props} = this.comp;
        const {search, emp, meta, dispatch, editTable} = props;
        !pk_org && (pk_org = emp.orgValue ? emp.orgValue.refpk : '');
        let postData = {
            pk_org
        };

        dispatch({
            type: 'emp/getMainTableData',
            payload: {
                postData: postData
            }
        })
            .then((res) => {
                if (res.success) {
                    if (res.data && res.data.gridMap) {
                        // for(i=0; i<res.data.infosetArray.length; i++){
                        //     for(j=0; j<10; j++){
                        //         if(j=0){
                        //             checkboxstatus[i][j]=['entry_card_show_edit', false, '可见可编辑', false]
                        //         }
                        //         else if(j=1){
                        //             checkboxstatus[i][j]=['entry_approval', false, '可见可编辑', false]
                        //         }
                        //         else if(j=2)

                        //     }
                        // }
                        gridMap = res.data.gridMap;
                        approveMap = res.data.approveMap;
                        disEditMap = res.data.disEditMap;
                        pkhipsndoc = res.data.pk_hi_psndoc_cert;//某张表格不能编辑
                        //配置一下表格模板
                        currentINfosetArray = res.data.infosetArray;
                        //console.log('newdata',res.data.infosetArray)
                        //console.log('current', currentINfosetArray)
                        let template = meta.getMeta();
                        //console.log('fuzhiqiande', template)
                        const target = template;
                        const source = template.appconfgrid;
                        //根据取回的数据配置模板，一个表格对应个模板
                        for (let i = 0; i < res.data.infosetArray.length; i++) {
                            template['appconfgrid' + i] = deepCopy(source);
                            //template['appconfgrid'+i]=source;
                            //console.log('ishisha',i)
                            template['appconfgrid' + i].code = 'appconfgrid' + i;
                            //console.log('idaodishisha',i)
                        }
                        //隐藏其他两个tab的多表头，
                        //！！！还要隐藏第一个tab除了第一个表格的需审核列
                        res.data.infosetArray.map((item, index) => {
                            template['appconfgrid' + index].items.forEach((item0, index0) => {
                                if (item0.attrcode === 'old') {
                                    item0.children.map((item1, index1) => {
                                        if (item.infosetcode != 'bd_psndoc' && item1.attrcode == 'entry_approval') {
                                            approveR = template['appconfgrid' + index].items[index0].children.splice(index1, 1);
                                        }
                                    });
                                } else if (item0.attrcode === 'old1' || item0.attrcode === 'old2') {
                                    item0.visible = false;
                                }
                            });
                            editTable.hideColByKey('appconfgrid' + index, ['unentry_list_show', 'manager_list_show'])
                        });

                        //隐藏多表头中的某列失败,需要把该列从多表头模板里移除
                        // res.data.infosetArray.map((item, index) => {
                        //     template['appconfgrid' + index].items.forEach((item0, index0) => {
                        //         if (item0.attrcode === 'old' && item.infosetname != '人员基本信息') {
                        //             //console.log('wuwu',index)
                        //             //item0.splice(index, 1);
                        //             item0.children.map((item1, index1) => {
                        //                 if (item1.attrcode == 'entry_approval') {
                        //                     item1.visible = false;
                        //                 }
                        //             });
                        //         }
                        //     });
                        //     editTable.hideColByKey('appconfgrid' + index, ['unentry_list_show', 'manager_list_show'])
                        // });

                        //配置cardTable，效果不好
                        // const tableIdArr = [];
                        // for (let i = 0; i < res.data.infosetArray.length; i++) {
                        //     tableIdArr.push('appconfgrid' + i);
                        // }
                        // console.log('???', tableIdArr)
                        // tableIdArr.map((val) => {
                        //     template.gridrelation[val] = {
                        //         "srcAreaCode": val,
                        //         "destBrowseAreaCode": null,
                        //         "destEditAreaCode": null,
                        //         "tabRelation": [val]
                        //     };
                        // });


                        //console.log('fuzhihoude', template)
                        //console.log('checkboxDisp', emp.checkboxDisp)

                        //多表头

                        // res.data.gridList.map((item, index) => {
                        //     let gridMultiple = {
                        //         ['appconfgrid'+index]: [
                        //             {
                        //                 name: '授权状态', 
                        //                 code: "old",
                        //                 children: ["entry_card_show_edit", "entry_approval", "entry_not_null","entry_card_show_notedit","entry_card_show"]
                        //             }
                        //         ]
                        //     };
                        //     props.meta.handleMultiple(template, gridMultiple);
                        //     console.log('zayangal',props.meta.getMeta());
                        // });
                        //editTable.hideColByKey('appconfgrid',  ['entry_card_show','entry_editable'])
                        // res.data.gridList.map(item => {
                        // })
                        dispatch({
                            type: 'emp/update',
                            payload: {
                                infoSetData: res.data.infosetArray,
                                approveMap: res.data.approveMap,
                                //titleCheckboxDisp: 'inline-block'
                            }
                        });
                        //editTable.setTableData('appconfgrid0', res.data.gridMap[res.data.infosetArray[0].pk_infoset].appconfgrid);
                        //editTable.setTableData('appconfgrid1', res.data.gridMap[res.data.infosetArray[1].pk_infoset].appconfgrid);
                        //下方为加载所有数据
                        res.data.infosetArray.map((item, index) => {
                            if (res.data.gridMap[item.pk_infoset]) {
                                editTable.setTableData('appconfgrid' + index, res.data.gridMap[item.pk_infoset].appconfgrid);
                                //console.log('data', editTable.getAllRows('appconfgrid' + index))
                            }
                        });
                        //editTable.hideColByKey('appconfgrid', ['unentry_card_show_edit', 'unentry_not_null','unentry_card_show_notedit','unentry_card_show','unentry_list_show','manager_card_show','manager_list_show'])
                        //editTable.setTableData('appconfgrid0', res.data.gridList[0].appconfgrid, false);
                        //editTable.setTableData('appconfgrid', res.data.gridList[1].appconfgrid, false);
                        //console.log('shabushaa a aa ')
                        console.log('begin', gridMap)
                    } else {
                        editTable.setTableData('list', {rows: []});
                    }

                }
            });
    }

    // 表格进入编辑态
    toEditStatus = () => {
        const {props} = this.comp;
        const {form, dispatch, button, editTable, emp, meta} = props;

        dispatch({
            type: 'emp/update',
            payload: {
                pageStatus: 'edit',
                //titleCheckboxDisp: 'inline-block',
                orgAble: true
                //checkboxDisp: 'inline-block'
            }
        });
        if (emp.currentPage === 'entry') {
            dispatch({
                type: 'emp/update',
                payload: {
                    titleCheckboxDisp: 'inline-block'
                }
            });
        } else {
            dispatch({
                type: 'emp/update',
                payload: {
                    titleCheckboxDisp: 'none'
                }
            });
        }
        console.log('title', emp.titleCheckboxDisp)
        button.setButtonVisible({
            edit: false,
            save: true,
            cancel: true

        });
        //根据表格中的数据来计算checkbox的样式,多选框配置模板
        let template1 = meta.getMeta();
        template1 = this.initMetaEdit(template1);
        meta.setMeta(template1);
        // else{
        //     emp.infoSetData.map((item, index) => {
        //         //console.log('e',editTable.getAllRows('appconfgid' + index))
        //         template['appconfgrid' + index].items.map((item0) => {
        //             if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
        //                 item0.children.map((item1, index1) => {
        //                     //let currentindex = index;
        //                     //let label = item1.label;
        //                     //console.log('label',label)
        //                     //console.log('current',currentindex)
        //                     if (item1.attrcode == 'entry_card_show_edit') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'entry_approval') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'entry_not_null') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'entry_card_show_notedit') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'entry_card_notshow') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'unentry_card_show_edit') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'unentry_not_null') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'unentry_card_show_notedit') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }
        //                     else if (item1.attrcode == 'unentry_card_notshow') {
        //                         let template2 = meta.getMeta();
        //                         template2 = this.initMetaBoxEdit(template2, item1.attrcode, index);
        //                         meta.setMeta(template2);
        //                     }

        //                 });
        //             }
        //         });
        //     });

        // }
        // 
        //emp.infoSetData.map((item, index) => {editTable.getAllRows('appconfgrid'+index)}
        //editTable.setStatus('appconfgrid0', 'edit')
        emp.infoSetData.map((item, index) => {
            if (gridMap[item.pk_infoset]) {
                editTable.setStatus('appconfgrid' + index, 'edit')
            }
            for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, "infoset_item_name", false);
            }
        });
        //控制某个字段是否可编辑，互斥三列下如果值为true，则不可编辑
        emp.infoSetData.map((item, index) => {
            for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                gridMap[item.pk_infoset].appconfgrid.rows = editTable.getAllRows('appconfgrid' + index);
                let currentData = editTable.getAllRows('appconfgrid' + index);
                //console.log('bool',gridMap[item.pk_infoset].appconfgrid.rows[i].values.entry_card_show_edit)
                //hasOwnProperty是为了判断当前表格有哪些列（除了第一个表格其他均无需审核列）
                if ((currentData[i].values.entry_card_show_edit).hasOwnProperty('value')) {
                    if (currentData[i].values.entry_card_show_edit.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_edit', false);
                    }
                }
                if ((currentData[i].values.entry_card_show_notedit).hasOwnProperty('value')) {
                    if (currentData[i].values.entry_card_show_notedit.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_notedit', false);
                    }
                }
                if (currentData[i].values.entry_card_notshow.hasOwnProperty('value')) {
                    if (currentData[i].values.entry_card_notshow.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_notshow', false);
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_list_show', false);
                    }
                }
                if (currentData[i].values.unentry_card_show_edit.hasOwnProperty('value')) {
                    if (currentData[i].values.unentry_card_show_edit.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_show_edit', false);
                    }
                }
                if (currentData[i].values.unentry_card_show_notedit.hasOwnProperty('value')) {
                    if (currentData[i].values.unentry_card_show_notedit.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_show_notedit', false);
                    }
                }
                if (currentData[i].values.unentry_card_notshow.hasOwnProperty('value')) {
                    if (currentData[i].values.unentry_card_notshow.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_notshow', false);
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_list_show', false);
                    }
                }
                if (currentData[i].values.manager_card_notshow.hasOwnProperty('value')) {
                    if (currentData[i].values.manager_card_notshow.value == true) {
                        editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'manager_list_show', false);
                    }
                }
            }
        });
        //部分表格前两列checkbox禁用，头部checkbox也禁用了
        emp.infoSetData.map((item, index) => {
            if (disEditMap[item.pk_infoset]) {
                //console.log('e', editTable.getAllRows('appconfgrid' + index))
                for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                    //将当前列全部选中
                    //console.log('bulaile???',index,i,code)
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_edit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_not_null', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_show_edit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_not_null', false);
                }
                let template = meta.getMeta();
                template['appconfgrid' + index].items.map((item0) => {
                    if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                        item0.children.map((item1, index1) => {
                            //let currentindex = index;
                            //let label = item1.label;
                            //console.log('label',label)
                            //console.log('current',currentindex)
                            if (item1.attrcode == 'entry_card_show_edit' || item1.attrcode == 'entry_not_null'
                                || item1.attrcode == 'unentry_card_show_edit' || item1.attrcode == 'unentry_not_null') {
                                item1.tempLable = item1.tempLable || item1.label;
                                item1.label =
                                    (<div>
                                        <span style={{display: 'inline-block'}}>
                                            <NCCheckbox
                                                disabled={true}
                                                //checked={this.setcheckall(currentINfosetArray[index].entry_show_edit)}
                                                //onChange={this.onCheckAllChange(index, item1.attrcode)}
                                                //onChange={this.onCheckAllChange}
                                            >
                                            </NCCheckbox>
                                        </span>
                                        <span>{item1.tempLable}</span>
                                    </div>);
                            }
                        });
                    }
                });
                meta.setMeta(template);
            }
        });
        //特殊表格所有checkbox禁用，列头也禁用了
        /*emp.infoSetData.map((item, index) => {
            if (pkhipsndoc == item.pk_infoset) {
                //console.log('e', editTable.getAllRows('appconfgrid' + index))
                for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                    //将当前列全部选中
                    //console.log('bulaile???',index,i,code)
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_edit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_not_null', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_notedit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_notshow', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_list_show', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_show_edit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_not_null', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_show_notedit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_card_notshow', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'unentry_list_show', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'manager_card_notshow', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'manager_list_show', false);
                }
            }
        });*/
    }

    // 表格进入浏览态
    toBrowseStatus = async () => {
        const {props} = this.comp;
        const {form, dispatch, button, editTable, emp, meta} = props;
        let paramGrid = {};
        emp.infoSetData.map((item, index) => {
            if (gridMap[item.pk_infoset]) {
                //console.log('fanhui', editTable.getAllRows('appconfgrid' + index))
                gridMap[item.pk_infoset].appconfgrid.rows = editTable.getAllRows('appconfgrid' + index);
                paramGrid[item.pk_infoset] = JSON.stringify(gridMap[item.pk_infoset]);
            }
        });

        let postData = {
            gridMap: JSON.stringify(paramGrid),
            //infosetArray: currentINfosetArray,
            pk_org: emp.orgValue.refpk,
            approveMap: emp.approveMap
        }

        try {
            let res = await dispatch({
                type: 'emp/SaveTableData',
                payload: {
                    postData: postData
                }
            });

            if (res.success) {
                toast({
                    color: 'success',
                    content: emp.language['gx6008-000052']
                });

                let template2 = meta.getMeta();
                //通过配置模板隐藏所有的checkbox，这里自己重新写一个label吧，别用下面的方法了，防止覆盖了checkboxStatus数组
                console.log('template', template2)
                template2 = this.initMetaBrowse(template2);
                meta.setMeta(template2);

                emp.infoSetData.map((item, index) => {
                    editTable.setStatus('appconfgrid' + index, 'browse')
                });

                dispatch({
                    type: 'emp/update',
                    payload: {
                        pageStatus: 'browse',
                        //checkboxDisp: 'none',
                        titleCheckboxDisp: 'none',
                        orgAble: false
                    }
                });

                button.setButtonVisible({
                    edit: true,
                    save: false,
                    cancel: false

                });

                let pk_org = emp.orgValue ? emp.orgValue.refpk : '';
                let postData = {
                    pk_org
                };

                dispatch({
                    type: 'emp/getMainTableData',
                    payload: {
                        postData: postData
                    }
                })
                    .then((res) => {
                        if (res.success) {
                            if (res.data) {
                                // for(i=0; i<res.data.infosetArray.length; i++){
                                //     for(j=0; j<10; j++){
                                //         if(j=0){
                                //             checkboxstatus[i][j]=['entry_card_show_edit', false, '可见可编辑', false]
                                //         }
                                //         else if(j=1){
                                //             checkboxstatus[i][j]=['entry_approval', false, '可见可编辑', false]
                                //         }
                                //         else if(j=2)

                                //     }
                                // }
                                gridMap = res.data.gridMap;
                                approveMap = res.data.approveMap;
                                disEditMap = res.data.disEditMap;
                                pkhipsndoc = res.data.pk_hi_psndoc_cert;
                                //配置一下表格模板
                                currentINfosetArray = res.data.infosetArray;
                            }
                        }
                    });

                emp.infoSetData.map((item, index) => {
                    if (gridMap[item.pk_infoset]) {
                        editTable.setTableData('appconfgrid' + index, gridMap[item.pk_infoset].appconfgrid);
                        //console.log('data', editTable.getAllRows('appconfgrid' + index))
                    }
                });
                //this.getMainTableData();
                console.log('guolaile')
            }
        } catch (e) {
        }

    }

    // //取消保存
    // toBeforeStatus = () => {
    //     const { props } = this.comp;
    //     const { emp, dispatch, editTable, meta } = props;
    //     dispatch({
    //         type: 'emp/update',
    //         payload: {
    //             addPageStatus: 'browse',
    //             //checkboxDisp: 'none',
    //             titleCheckboxDisp: 'none'
    //         }
    //     });
    //     let template2 = meta.getMeta();
    //     //通过配置模板隐藏所有的checkbox，这里自己重新写一个label吧，别用下面的方法了，防止覆盖了checkboxStatus数组
    //     console.log('template',template2)
    //     template2 = this.initMetaBrowse(template2);
    //     meta.setMeta(template2);
    //     // 
    //     //emp.infoSetData.map((item, index) => {editTable.getAllRows('appconfgrid'+index)}
    //     //editTable.setStatus('appconfgrid0', 'browse')
    //     emp.infoSetData.map((item, index) => {
    //         editTable.setStatus('appconfgrid' + index, 'browse')
    //     });

    //     currentINfosetArray.map((item, index) => {
    //         if (gridMap[item.pk_infoset]) {
    //             editTable.setTableData('appconfgrid' + index, gridMap[item.pk_infoset].appconfgrid);
    //             //console.log('data', editTable.getAllRows('appconfgrid' + index))
    //         }
    //     });
    //     console.log('quxiaobaocun',gridMap)

    //     console.log('??????????')
    // }

    // 表格编辑后
    tableAfterEdit = async (platFormProps, moduleId, key, value, changedrows, index, record) => {
        console.log('aaaaaa', index, key)
        const {props} = this.comp;
        const {emp, dispatch, editTable, meta} = props;
        //console.log('5',key, valuea, index, record)
        //console.log('1',editTable.getAllRows('material'))//true
        //是否接收和缺件互斥
        //互斥问题，多个表格怎么办？？？
        //let template = meta.getMeta();
        //debugger
        this.tableEdit(key, value, moduleId, index)
    }

    //进入编辑态配置表格模板checkbox
    initMetaEdit = (template) => {
        const {props, action} = this.comp;
        const {emp, editTable} = props;
        console.log('!!!', emp.checkboxDisp)
        //console.log('e',editTable.getAllRows('appconfgid0'))
        //！！！需要对模板遍历一下，给所有table都配上复选框
        // emp.infoSetData.map((item, index) => {
        //     //console.log('e',editTable.getAllRows('appconfgid' + index))
        //     template['appconfgrid' + index].items.map((item0) => {
        //         if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
        //             item0.children.map((item1, index1) => {
        //                 label.push(item1.label);
        //             });
        //         }
        //     });
        // });
        // emp.infoSetData.map((item, index) => {//把是否的样式改成勾，变成checkbox？？
        //     template['appconfgrid'+index].items.forEach((item0) => {  
        //         if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
        //             item0.children.map((item1, index1) => {
        //                 if (item1.attrcode == 'entry_card_show_edit'){
        //                     if(editTable.getAllRows('appconfgrid'+index).find((value, index, arr) => {//把表格变成checkbox
        //                         return value.values.entry_approval.value == 'true'
        //                     }) == -1){//获取当前表格数据为一个数组，用find方法对每一行的必审核的值判断，如果都不满足值为true，返回-1，可以设置列的checkbox
        //                         item1.label = (<div><NCCheckbox>disable=...)
        //                         
        //                    render用来初始化checkbox样式的
        //                      item1.render = (text, record, index) => {
        //                             return (
        //                                 <div>
        //                                     <span style={{ display: 'inline-block' }}>
        //                                         <NCCheckbox
        //                                             disabled={true}
        //                                             checked={false}
        //                                         >
        //                                         </NCCheckbox>
        //                                     </span>    
        //                                 </div>
        //                             )
        //                         };
        //                     }
        //                 }
        //             });
        //         }
        //         // item.width='100px'
        //     });
        // });

        // emp.infoSetData.map((item, index) => {//
        //     console.log('e',editTable.getAllRows('appconfgid' + index))
        //     template['appconfgrid' + index].items.map((item0) => {
        //         if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
        //             item0.children.map((item1, index1) => {
        //                 if (item1.attrcode == 'entry_card_show_edit'){
        //                     item1.render =(text, record, index) => {//record为当前行数据

        //                         return (
        //                             <NCCheckbox 
        //                                 disabled={true}
        //                                 checked={true}
        //                             >
        //                             </NCCheckbox>
        //                         )
        //                     }
        //                 }
        //             });
        //         }
        //     });
        // });
        //遍历所有表格的所有列依次配置表格列头部的checkbox
        emp.infoSetData.map((item, index) => {
            //console.log('e',editTable.getAllRows('appconfgid' + index))
            template['appconfgrid' + index].items.map((item0) => {
                if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                    item0.children.map((item1, index1) => {
                        //let currentindex = index;
                        //let label = item1.label;
                        //console.log('label',label)
                        //console.log('current',currentindex)
                        if (item1.attrcode == 'entry_card_show_edit') {
                            //console.log('rows', item.getAllRows)
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].entry_show_edit)}
                                            checked={this.setcheckall(currentINfosetArray[index].entry_show_edit)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'entry_approval') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={false}
                                            checked={this.setcheckall(currentINfosetArray[index].entry_approval)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'entry_not_null') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            //根据表格可见不可编辑和不可见列值是否存在true来配置必填列头部checkbox是否禁用
                                            //editTable.getAllRows('appconfgid' + index)
                                            disabled={this.setNotNullCheck(index, 'entry_not_null')}
                                            //disabled={false}
                                            checked={this.setcheckall(currentINfosetArray[index].entry_not_null)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'entry_card_show_notedit') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].entry_show_notedit)}
                                            checked={this.setcheckall(currentINfosetArray[index].entry_show_notedit)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'entry_card_notshow') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].entry_notshow)}
                                            checked={this.setcheckall(currentINfosetArray[index].entry_notshow)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'unentry_card_show_edit') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].unentry_show_edit)}
                                            checked={this.setcheckall(currentINfosetArray[index].unentry_show_edit)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'unentry_not_null') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setNotNullCheck(index, 'unentry_not_null')}
                                            //disabled={false}
                                            checked={this.setcheckall(currentINfosetArray[index].unentry_not_null)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'unentry_card_show_notedit') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].unentry_show_notedit)}
                                            checked={this.setcheckall(currentINfosetArray[index].unentry_show_notedit)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'unentry_card_notshow') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={this.setcheckall(currentINfosetArray[index].unentry_notshow)}
                                            checked={this.setcheckall(currentINfosetArray[index].unentry_notshow)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                        } else if (item1.attrcode == 'manager_card_notshow') {
                            item1.tempLable = item1.tempLable || item1.label;
                            item1.label =
                                (<div>
                                    <span style={{display: 'inline-block'}}>
                                        <NCCheckbox
                                            disabled={false}
                                            checked={this.setcheckall(currentINfosetArray[index].manager_notshow)}
                                            onChange={this.onCheckAllChange(index, item1.attrcode)}
                                            //onChange={this.onCheckAllChange}
                                        >
                                        </NCCheckbox>
                                    </span>
                                    <span>{item1.tempLable}</span>
                                </div>);
                            //console.log('?????',item0)
                        }
                    });
                }
            });
        });
        return template;

    }

    //浏览态配置表格模板
    initMetaBrowse = (template) => {
        const {props, action} = this.comp;
        const {emp, editTable} = props;
        emp.infoSetData.map((item, index) => {
            //console.log('e',editTable.getAllRows('appconfgid' + index))
            template['appconfgrid' + index].items.map((item0) => {
                if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                    item0.children.map((item1, index1) => {
                        item1.label = item1.tempLable;
                    });
                }
            });
        });
        return template;
    }

    setCheckboxMeta = (index, code, item, able, labelname, check) => {//check表示复选框的checked值
        const {props, action} = this.comp;
        const {emp, editTable} = props;
        if (check == false) {
            item.label =
                (<div>
                    <span style={{display: emp.checkboxDisp}}>
                        <NCCheckbox
                            disabled={able}
                            checked={this.setcheckall(check)}
                            onChange={this.onCheckAllChange(index, code)}
                            //onChange={this.onCheckAllChange}
                        >
                        </NCCheckbox>
                    </span>
                    <span>{labelname}</span>
                </div>);
        }
            // else if (code == 'entry_card_show_edit'){
            //     item.label =
            //         (<div>
            //             <span style={{ display: emp.checkboxDisp }}>
            //                 <NCCheckbox
            //                     disabled={able}

            //                     checked={true}
            //                     onChange={this.onCheckAllChange(index, code)}
            //                 //onChange={this.onCheckAllChange}
            //                 >
            //                 </NCCheckbox>
            //             </span>
            //             <span>{labelname}</span>
            //         </div>);
            //     //check没有可以置为空？
        // }
        else {
            //console.log('gaiyiha')
            item.label =
                (<div>
                    <span style={{display: emp.checkboxDisp}}>
                        <NCCheckbox
                            disabled={able}

                            //checked={true}
                            onChange={this.onCheckAllChange(index, code)}
                            //onChange={this.onCheckAllChange}
                        >
                        </NCCheckbox>
                    </span>
                    <span>{labelname}</span>
                </div>);
            //check没有可以置为空？
        }
    }

    //设置checked值
    setcheckall = (check) => {
        //console.log('check',check)
        if (check == false) {
            //console.log('666???')
            return false
        } else return true
    }

    //通过配置模板来改变表格各列头部checkbox的是否可编辑态
    initMetaBoxEdit = (template, code, index) => {
        const {props, action} = this.comp;
        const {emp, editTable} = props;
        //console.log('index',index)
        //重新配置一下index对应的表格模板，
        //emp.infoSetData.map((item, index) => {
        //console.log('e',editTable.getAllRows('appconfgid' + index))
        if (index > 0) {
            template['appconfgrid' + index].items.map((item0) => {//old表示多表头
                //console.log('indexx',index,item0.attrcode)
                if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                    item0.children.map((item1, index1) => {//多表头中的子列
                        let label = item1.label;
                        //console.log('label',item0.children[index1+1])
                        //let label1 = item0.children[index1+1].label;
                        if (code == 'entry_card_show_edit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000231']);//国际化处理： 可见可编辑
                            //this.setCheckboxMeta(index, item0.children[index1+1].attrcode, item0.children[index1+1], false, '需审核', false); 
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000233']);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 3].attrcode, item0.children[index1 + 3], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                            //其他列头checkbox要设置为可编辑or不可编辑，还要注意onchange方法，attrcode万一不行就一个个列出来
                        } else if (code == 'entry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                            //this.setCheckboxMeta(index, item0.children[index1-2].attrcode, item0.children[index1-2], true, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理：可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理：可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理：不可见
                        } else if (code == 'entry_card_show_notedit' && item1.attrcode == code) {
                            let showEditAble = true;
                            //当表格的pkinfoset出现在disEditMap中说明这张表格的可见可编辑列和必填列复选框设置为禁用
                            emp.infoSetData.map((item, mapIndex) => {
                                if (mapIndex == index
                                    && disEditMap[item.pk_infoset]) {
                                    showEditAble = false;
                                }
                            });
                            if (showEditAble) {
                                this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], false, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            } else {
                                this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            }
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000234']);//国际化处理： 可见不可编辑
                            //this.setCheckboxMeta(index, item0.children[index1-2].attrcode, item0.children[index1-2], true, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000233'], false);//国际化处理：必填
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000235'], false);//国际化处理：不可见

                        } else if (code == 'entry_card_notshow' && item1.attrcode == code) {
                            let showEditAble = true;
                            //当表格的pkinfoset出现在disEditMap中说明这张表格的可见可编辑列和必填列复选框设置为禁用
                            emp.infoSetData.map((item, mapIndex) => {
                                if (mapIndex == index
                                    && disEditMap[item.pk_infoset]) {
                                    showEditAble = false;
                                }
                            });
                            if (showEditAble) {
                                this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], false, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            } else {
                                this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], true, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            }
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000235']);//国际化处理：不可见
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000233'], false);//国际化处理：必填  
                        } else if (code == 'unentry_card_show_edit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000231']);//国际化处理：可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000233']);//国际化处理：必填
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 3].attrcode, item0.children[index1 + 3], false, emp.language['gx6008-000235'], false);//国际化处理：不可见
                        } else if (code == 'unentry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理：必填
                            //this.setCheckboxMeta(index, item0.children[index1-2].attrcode, item0.children[index1-2], true, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理：可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理：不可见
                        } else if (code == 'unentry_card_show_notedit' && item1.attrcode == code) {
                            let showEditAble = true;
                            //当表格的pkinfoset出现在disEditMap中说明这张表格的可见可编辑列和必填列复选框设置为禁用
                            emp.infoSetData.map((item, mapIndex) => {
                                if (mapIndex == index
                                    && disEditMap[item.pk_infoset]) {
                                    showEditAble = false;
                                }
                            });
                            if (showEditAble) {
                                this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], false, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            } else {
                                this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            }
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000234']);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000233'], false);//国际化处理：必填
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000235'], false);//国际化处理：不可见
                        } else if (code == 'unentry_card_notshow' && item1.attrcode == code) {
                            let showEditAble = true;
                            //当表格的pkinfoset出现在disEditMap中说明这张表格的可见可编辑列和必填列复选框设置为禁用
                            emp.infoSetData.map((item, mapIndex) => {
                                if (mapIndex == index
                                    && disEditMap[item.pk_infoset]) {
                                    showEditAble = false;
                                }
                            });
                            if (showEditAble) {
                                this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], false, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            } else {
                                this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], true, emp.language['gx6008-000231'], false);//国际化处理：可见可编辑
                            }
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000235']);//国际化处理：不可见
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, emp.language['gx6008-000234'], false);//国际化处理：可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000233'], false);//国际化处理：必填
                        } else if (code == 'manager_card_notshow' && item1.attrcode == code) {

                        }
                    });
                }
            });
        } else if (index == 0) {
            //console.log('zoubujinlai??')
            template['appconfgrid' + index].items.map((item0) => {//old表示多表头   
                //console.log('indexx',index,item0.attrcode)
                if (item0.attrcode == 'old') {
                    //console.log('index',index,item0)
                    item0.children.map((item1, index1) => {//多表头中的子列
                        let label = item1.label;
                        //console.log('label',item0.children[index1+1])
                        //let label1 = item0.children[index1+1].label;
                        if (code == 'entry_card_show_edit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000232']);//国际化处理： 需审核
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000233']);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 + 3].attrcode, item0.children[index1 + 3], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 4].attrcode, item0.children[index1 + 4], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                            //其他列头checkbox要设置为可编辑or不可编辑，还要注意onchange方法，attrcode万一不行就一个个列出来
                        } else if (code == 'entry_approval' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000232']);//国际化处理： 需审核
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000233']);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 3].attrcode, item0.children[index1 + 3], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'entry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, emp.language['gx6008-000232']);//国际化处理： 需审核
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'entry_card_show_notedit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000234']);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'unentry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                            //this.setCheckboxMeta(index, item0.children[index1-2].attrcode, item0.children[index1-2], true, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'entry_card_notshow' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000235']);//国际化处理： 不可见
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                            this.setCheckboxMeta(index, item0.children[index1 - 4].attrcode, item0.children[index1 - 4], false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                        }
                    });
                } else if (item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                    item0.children.map((item1, index1) => {
                        if (code == 'unentry_card_show_edit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000231']);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000233']);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 3].attrcode, item0.children[index1 + 3], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'entry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                            //this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'unentry_card_show_notedit' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000234']);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'unentry_not_null' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                            //this.setCheckboxMeta(index, item0.children[index1-2].attrcode, item0.children[index1-2], true, '需审核'); 
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 1].attrcode, item0.children[index1 + 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 + 2].attrcode, item0.children[index1 + 2], false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                        } else if (code == 'unentry_card_notshow' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, true, emp.language['gx6008-000235']);//国际化处理： 不可见
                            this.setCheckboxMeta(index, item0.children[index1 - 1].attrcode, item0.children[index1 - 1], false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            this.setCheckboxMeta(index, item0.children[index1 - 2].attrcode, item0.children[index1 - 2], true, emp.language['gx6008-000233']), false;//国际化处理： 必填
                            this.setCheckboxMeta(index, item0.children[index1 - 3].attrcode, item0.children[index1 - 3], false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                        } else if (code == 'manager_card_notshow' && item1.attrcode == code) {
                            this.setCheckboxMeta(index, code, item1, false, emp.language['gx6008-000235']);//国际化处理： 不可见
                        }
                    });
                }
            });
        }
        return template;
    }

    //设置表格标题旁的复选框值
    setTitleCheck = (pk_infoset) => {
        const {props, action} = this.comp;
        const {emp, editTable, meta, dispatch} = props;
        if (emp.approveMap[pk_infoset] == 'Y') {
            // dispatch({
            //     type: 'emp/update',
            //     payload: {
            //         titleChecked: true
            //     }
            // });
            // let template3= meta.getMeta();
            // meta.setMeta(template3);
            return true;
        } else {
            // dispatch({
            //     type: 'emp/update',
            //     payload: {
            //         titleChecked: false
            //     }
            // });
            return false;
        }
    }

    //根据可见不可编辑、不可见列是否有true来决定必填checkbox是否可用
    setNotNullCheck = (index, code) => {
        const {props, action} = this.comp;
        const {emp, editTable, meta, dispatch} = props;
        for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {

            let currentData = editTable.getAllRows('appconfgrid' + index);
            //console.log('bool',gridMap[item.pk_infoset].appconfgrid.rows[i].values.entry_card_show_edit)
            //hasOwnProperty是为了判断当前表格有哪些列（除了第一个表格其他均无需审核列）
            if (code == 'entry_not_null') {
                if (currentData[i].values.entry_card_show_notedit.value == true ||
                    currentData[i].values.entry_card_notshow.value == true) {
                    return true;
                } else {
                    return false;
                }
            } else if (code == 'unentry_not_null') {
                if (currentData[i].values.unentry_card_show_notedit.value == true ||
                    currentData[i].values.unentry_card_notshow.value == true) {
                    return true;
                } else {
                    return false;
                }
            }
        }
    }

    //表格标题旁checkbox改变事件,找到表格序号，操作某一列
    onCheckChange = (pk_infoset, index) => {
        return (e) => {
            const {props, action} = this.comp;
            const {emp, editTable, meta, dispatch} = props;
            //console.log('666', e)
            if (e) {
                /*for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                    editTable.setValByKeyAndIndex('appconfgrid' + index, i, 'entry_card_show_edit', { value: true });
                    editTable.setValByKeyAndIndex('appconfgrid' + index, i, 'entry_card_show_notedit', { value: false });
                    editTable.setValByKeyAndIndex('appconfgrid' + index, i, 'entry_card_notshow', { value: false });
                    //editTable.setValByKeyAndIndex('appconfgrid' + index, i, 'entry_list_show', { value: false });
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_not_null', true);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_edit', false);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_show_notedit', true);
                    editTable.setEditableRowKeyByIndex('appconfgrid' + index, i, 'entry_card_notshow', true);
                    let template = meta.getMeta();
                    template['appconfgrid' + index].items.map((item0) => {//old表示多表头
                        //console.log('indexx',index,item0.attrcode)
                        if (item0.attrcode == 'old' || item0.attrcode == 'old1' || item0.attrcode == 'old2') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'entry_card_show_edit') {
                                    this.setCheckboxMeta(index, item1.attrcode, item1, true, emp.language['gx6008-000231'], true);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'entry_not_null') {
                                    this.setCheckboxMeta(index, item1.attrcode, item1, false, emp.language['gx6008-000233']);//国际化处理： 必填
                                }
                                //console.log('label',item0.children[index1+1])
                                //let label1 = item0.children[index1+1].label;
                                if (item1.attrcode == 'entry_card_show_notedit') {
                                    this.setCheckboxMeta(index, item1.attrcode, item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                                }
                                if (item1.attrcode == 'entry_card_notshow') {
                                    this.setCheckboxMeta(index, item1.attrcode, item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                }*/
                emp.approveMap[pk_infoset] = 'Y';
                dispatch({
                    type: 'emp/update',
                    payload: {
                        approveMap: emp.approveMap,
                        titleChecked: true
                    }
                });
                //这里可以配置模板设置列checkbox状态
            } else {
                emp.approveMap[pk_infoset] = 'N';
                dispatch({
                    type: 'emp/update',
                    payload: {
                        approveMap: emp.approveMap,
                        titleChecked: false
                    }
                });
            }
        }
    }

    //表格列checkbox改变事件
    onCheckAllChange = (index, code, checkall) => {
        //const { props} = this.comp;
        //const { dispatch } = props;
        return (e) => {
            //console.log('eshisha',e);
            // dispatch({
            //     type: 'emp/update',
            //     payload: {
            //         checkall: e
            //     }
            // });
            const {props, action} = this.comp;
            const {meta, editTable, dispatch} = props;
            let template = meta.getMeta();
            //根据index找到对应的表格，根据item/code(里边是多表头的子列的对应编码,例如'entry card show')
            if (e) {
                //console.log('e', editTable.getAllRows('appconfgrid' + index))
                for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                    //将当前列全部选中
                    //console.log('truebulaile???',index,i,code)
                    editTable.setValByKeyAndIndex('appconfgrid' + index, i, code, {value: true});
                    //列与列之间互斥等联动
                    this.tableEdit(code, true, 'appconfgrid' + index, i);
                    //某列表头复选框选中之后本身不可再编辑以及其他列复选框的联动，需要重新配置模板
                    //根据index得知操作的是哪个表格，根据item来得知全选的是哪一列，再写对其他列的影响以及所有列（包括头）的可编辑性
                    // if (code == 'entry_card_show_notedit' || code == 'entry_card_notshow') {
                    //     dispatch({
                    //         type: 'emp/update',
                    //         payload: {
                    //             titleChecked: false
                    //         }
                    //     });
                    //console.log('xieduimei',approveMap)
                    //this.setCheck();//传入index对应的pkinfoset，在setcheck方法里
                    //想办法更新表格     
                    // }
                }
                let template2 = meta.getMeta();
                //通过配置模板来改变表格各列头部checkbox的是否可编辑态
                template2 = this.initMetaBoxEdit(template2, code, index);
                meta.setMeta(template2);
                // editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show', {value: false});
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', true)
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', true)
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', true)
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', true)
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show', true)
                // editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', false) 
            } else if (!e) {
                for (let i = 0; i < editTable.getNumberOfRows('appconfgrid' + index); i++) {
                    console.log('bulaile???', index, i, code)
                    //将当前列全部选中
                    editTable.setValByKeyAndIndex('appconfgrid' + index, i, code, {value: false});
                    //列与列之间互斥等联动
                    this.tableEdit(code, false, 'appconfgrid' + index, i);
                }
                let template3 = meta.getMeta();
                //通过配置模板来改变表格各列头部checkbox的是否可编辑态
                template3 = this.initMetaBoxEdit(template3, code, index);
                meta.setMeta(template3);
            }
            //console.log('666', index, code, e)
        }
    }

    //根据传入的参数找到对应表格对应列对应值进行修改，并根据影响的checkbox配置模板
    tableEdit = (key, value, moduleId, index) => {
        const {props, action} = this.comp;
        const {emp, dispatch, editTable, meta} = props;
        if (key === 'entry_card_show_edit') {//zai职可见可编辑
            if (value) {
                editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_notedit', {value: false});
                editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_notshow', {value: false});
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', false)
                let template = meta.getMeta();
                template[moduleId].items.map((item0) => {//old表示多表头
                    if (item0.attrcode == 'old') {
                        item0.children.map((item1, index1) => {//多表头中的子列
                            if (item1.attrcode == 'entry_card_show_notedit') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            }
                            if (item1.attrcode == 'entry_card_notshow') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                            }
                        });
                    }
                });
                meta.setMeta(template);
            }
        } else if (key === 'entry_approval') {
            if (value) {
                editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_edit', {value: true});
                editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_notedit', {value: false});
                editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_notshow', {value: false});
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', false);
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', true);
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', true);
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', true);
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', true);
                editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', true);
                let template = meta.getMeta();
                template[moduleId].items.map((item0) => {//old表示多表头
                    if (item0.attrcode == 'old') {
                        item0.children.map((item1, index1) => {//多表头中的子列
                            if (item1.attrcode == 'entry_card_show_notedit') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            }
                            if (item1.attrcode == 'entry_card_notshow') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                            }
                        });
                    }
                });
                meta.setMeta(template);
            }
        } else if (key === 'entry_card_show_notedit') {//在职可见不可编辑
            let showEdit = true;
            //当表格的pkinfoset出现在disEditMap中说明这张表格的可见可编辑列和必填列不可被勾选
            emp.infoSetData.map((item, index) => {
                if (moduleId.substring(0 + 11, moduleId.length) == index
                    && disEditMap[item.pk_infoset]) {
                    showEdit = false;
                }
            });

            //     }
            if (showEdit) {
                if (value) {
                    //editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_not_null', {value: false});
                    //editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', { value:'Y', display:'是'})
                    //console.log('???')
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_notshow', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', false)
                    //console.log('mmmmmm', template)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', true)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', true)
                    //配置表格各列头部的checkbox
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'entry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_edit', item1, false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'entry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'entry_approval') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_approval', item1, false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                                }
                                if (item1.attrcode == 'entry_card_notshow') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                    //如果表格标题旁有checkbox的话，考虑对其的影响
                    Object.keys(emp.approveMap).forEach(function (key) {
                        if (key == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                            //emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                            action.tabAct.tabChange('entry')//强制刷新当前tab
                        }
                    });
                    // emp.approveMap.map((item, index) => {
                    //     if (item == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                    //         emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                    //         this.comp.action.tabAct.tabChange('entry')//强制刷新当前tab
                    //     }
                    // });
                }
            } else {
                if (value) {
                    //editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', false)
                    //editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', {value: false});
                    //editTable.setValByKeyAndIndex(moduleId, index, 'entry_not_null', { value: false });
                    //editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', { value:'Y', display:'是'})
                    //console.log('???')
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_notshow', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', false)
                    //console.log('mmmmmm', template)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', true)
                    //配置表格各列头部的checkbox
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'entry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_edit', item1, true, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'entry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'entry_approval') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_approval', item1, false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                                }
                                if (item1.attrcode == 'entry_card_notshow') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                    //如果表格标题旁有checkbox的话，考虑对其的影响
                    Object.keys(emp.approveMap).forEach(function (key) {
                        if (key == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                            //emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                            action.tabAct.tabChange('entry')//强制刷新当前tab
                        }
                    });
                    // emp.approveMap.map((item, index) => {
                    //     if (item == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                    //         emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                    //         this.comp.action.tabAct.tabChange('entry')//强制刷新当前tab
                    //     }
                    // });
                }
            }
            // });
        } else if (key === 'entry_card_notshow') {//在职不可见
            let showEdit = true;
            emp.infoSetData.map((item, index) => {
                if (moduleId.substring(0 + 11, moduleId.length) == index
                    && disEditMap[item.pk_infoset]) {
                    showEdit = false;
                }
            });
            if (showEdit) {
                if (value) {
                    //editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_not_null', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_list_show', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_notedit', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', true)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', true)
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'entry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_edit', item1, false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'entry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'entry_approval') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_approval', item1, false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                                }
                                if (item1.attrcode == 'entry_card_show_notedit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                    //如果表格标题旁有checkbox的话
                    Object.keys(emp.approveMap).forEach(function (key) {
                        if (key == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                            //emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                            action.tabAct.tabChange('entry')//强制刷新当前tab
                        }
                    });
                }
            } else {
                if (value) {
                    //editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_approval', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_list_show', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_approval', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_not_null', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_list_show', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_notedit', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'entry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_notshow', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_edit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'entry_card_show_notedit', true)
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'entry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_edit', item1, true, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'entry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'entry_approval') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_approval', item1, false, emp.language['gx6008-000232'], false);//国际化处理： 需审核
                                }
                                if (item1.attrcode == 'entry_card_show_notedit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'entry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                    //如果表格标题旁有checkbox的话
                    Object.keys(emp.approveMap).forEach(function (key) {
                        if (key == emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset) {
                            //emp.approveMap[emp.infoSetData[moduleId.substring(0 + 11, moduleId.length)].pk_infoset] = 'N'
                            action.tabAct.tabChange('entry')//强制刷新当前tab
                        }
                    });
                }
            }
        } else if (key === 'unentry_card_show_edit') {//未入职可见可编辑
            if (value) {
                editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_not_null', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_list_show', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_edit', false)
                editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_notedit', {value: false});
                editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_notshow', {value: false});
                editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_notedit', true)
                editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_notshow', true)
                let template = meta.getMeta();
                template[moduleId].items.map((item0) => {//old表示多表头
                    if (item0.attrcode == 'old1') {
                        item0.children.map((item1, index1) => {//多表头中的子列
                            if (item1.attrcode == 'unentry_card_show_notedit') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                            }
                            if (item1.attrcode == 'unentry_card_notshow') {
                                this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                            }
                        });
                    }
                });
                meta.setMeta(template);
            }
        } else if (key === 'unentry_card_show_notedit') {//未入职可见不可编辑
            let showEdit = true;
            emp.infoSetData.map((item, index) => {
                if (moduleId.substring(0 + 11, moduleId.length) == index
                    && disEditMap[item.pk_infoset]) {
                    showEdit = false;
                }
            });
            if (showEdit) {
                if (value) {
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_notedit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_list_show', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_edit', true)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_notshow', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_notshow', {value: false});
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old1') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'unentry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_edit', item1, false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'unentry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'unentry_card_notshow') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                }
            } else {
                if (value) {
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_not_null', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_notedit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_list_show', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    //editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', { value: false });
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_edit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_notshow', true)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_notshow', {value: false});
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old1') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'unentry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_edit', item1, false, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'unentry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'unentry_card_notshow') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_notshow', item1, false, emp.language['gx6008-000235'], false);//国际化处理： 不可见
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                }
            }
        } else if (key === 'unentry_card_notshow') {//未入职不可见
            let showEdit = true;
            emp.infoSetData.map((item, index) => {
                if (moduleId.substring(0 + 11, moduleId.length) == index
                    && disEditMap[item.pk_infoset]) {
                    showEdit = false;
                }
            });
            if (showEdit) {
                if (value) {
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_not_null', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_list_show', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_list_show', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_notedit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_notshow', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_edit', true)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_notedit', true)
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old1') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'unentry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_edit', item1, true, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'unentry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'unentry_card_show_notedit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                }
            } else {
                if (value) {
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_not_null', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_list_show', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_list_show', false)
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_not_null', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_edit', {value: false});
                    editTable.setValByKeyAndIndex(moduleId, index, 'unentry_card_show_notedit', {value: false});
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_notshow', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_edit', false)
                    editTable.setEditableRowKeyByIndex(moduleId, index, 'unentry_card_show_notedit', true)
                    let template = meta.getMeta();
                    template[moduleId].items.map((item0) => {//old表示多表头
                        if (item0.attrcode == 'old1') {
                            item0.children.map((item1, index1) => {//多表头中的子列
                                if (item1.attrcode == 'unentry_card_show_edit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_edit', item1, true, emp.language['gx6008-000231'], false);//国际化处理： 可见可编辑
                                }
                                if (item1.attrcode == 'unentry_not_null') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_not_null', item1, true, emp.language['gx6008-000233'], false);//国际化处理： 必填
                                }
                                if (item1.attrcode == 'unentry_card_show_notedit') {
                                    this.setCheckboxMeta(moduleId.substring(0 + 11, moduleId.length), 'unentry_card_show_notedit', item1, false, emp.language['gx6008-000234'], false);//国际化处理： 可见不可编辑
                                }
                            });
                        }
                    });
                    meta.setMeta(template);
                }
            }
        } else if (key === 'manager_card_notshow') {//我的团队不可见
            if (value) {
                //editTable.setValByKeyAndIndex(moduleId, index, 'manager_list_show', { value: true });
                editTable.setEditableRowKeyByIndex(moduleId, index, 'manager_list_show', false)
                editTable.setValByKeyAndIndex(moduleId, index, 'manager_list_show', {value: false});
            } else {
                editTable.setEditableRowKeyByIndex(moduleId, index, 'manager_list_show', true)
            }
        }
    }

    //打开保存提示框
    openSaveBox = () => {
        const {props} = this.comp;
        const {emp} = props;
        promptBox({
            color: 'info',
            title: emp.language['gx6008-000237'],//国际化处理： 确认保存
            content: emp.language['gx6008-000238'],//国际化处理： 是否要覆盖已有的权限配置
            beSureBtnClick: () => {
                this.toBrowseStatus();
            }
        });
    }

    //打开取消保存提示框
    cancelSaveBox = () => {
        const {props} = this.comp;
        const {dispatch, button, editTable, emp, meta} = props;
        promptBox({
            color: 'info',
            title: emp.language['gx6008-000239'],//国际化处理：取消保存
            content: emp.language['gx6008-000240'],//国际化处理：是否放弃保存
            beSureBtnClick: () => {
                emp.infoSetData.map((item, index) => {
                    //console.log('e',editTable.getAllRows('appconfgid' + index))
                    editTable.cancelEdit('appconfgrid' + index);
                });
                dispatch({
                    type: 'emp/update',
                    payload: {
                        pageStatus: 'browse',
                        //checkboxDisp: 'none',
                        titleCheckboxDisp: 'none',
                        orgAble: false
                    }
                });
                button.setButtonVisible({
                    edit: true,
                    save: false,
                    cancel: false
                });
                let template2 = meta.getMeta();
                //通过配置模板隐藏所有的checkbox，这里自己重新写一个label吧，别用下面的方法了，防止覆盖了checkboxStatus数组
                console.log('template', template2)
                template2 = this.initMetaBrowse(template2);
                meta.setMeta(template2);
                // 
                //emp.infoSetData.map((item, index) => {editTable.getAllRows('appconfgrid'+index)}
                //editTable.setStatus('appconfgrid0', 'browse')
                emp.infoSetData.map((item, index) => {
                    editTable.setStatus('appconfgrid' + index, 'browse')
                });
            }
        });

    }
}